\chapter{Definició del problema}
Abans de pendre decission de disseny per el sistema mencionat s'ha de tenir en
compte un seguit de problemes explicats a continuació:

\begin{itemize}
  \item Distingir entre usuari i usuari discapacitat\\Abans d'adaptar
  cap aplicació, el sistema te que saber d'alguna manera si
  l'usuari és discapacitat o no. És necessari ja que el sistema no es te que
  limitar a oferir canvis només per als usuaris discapacitats sinò que ha de
  poder millorar també l'experiència d'us de l'aplicació per a usuaris normals.
  
  \item Múltiple ventall de discapacitats\\Actualment estan
  reconegudes moltes discapacitats que impedeixen l'ús normal d'apliacions, i 
  a més a més, el grau de discapacitat pot variar per segons quina discapacitat.
  Quan el sistema te que tractar amb
  usuaris discapacitats aquest té que saber exàctament quin és el seu tipus de
  discapacitat i quin és el seu percentatge d'afectació. 
  
  \item Múltiple ventall de dispositius
  En el mercat existeixen múltiples tipus de dispositius: ordenadors de
  sobretaula, terminals mòbils, PDA's, netbooks, tablets, electrodmèstics
  intel·ligents, i més. El sistema ha de ser capaç de distingir-los i poder
  adaptar qualsevol aplicació independentment del tipus de dispositiu, tenint
  en compte paràmetres com quin son els seus dispositius d'E/S, quines
  capacitats de connectivitat disposa, etc. A més a més cada un d'aquests
  dispositius, pot portar un sistema operatiu diferent que el sistema també
  necessita saber. 
  
  \item Múltiples tipus d'aplicacions
  Les aplicacions poden estar implementades en múltiples tipus de
  llenguatges. Cada llenguatge te els seus avantatges i els seus
  inconvenients a l'hora de construir interfícies d'usuari i les funcionalitas
  que aquests ofereixen proporcionen una navegació diferent entre ells per a
  cada interfície. Estem parlant de events, elements de pantalla, menús,
  controls, i altres aspectes d'una interfície d'usuari
  
\end{itemize}









































Fins ara s’ha fet una introducció de com estan el temes d’accesibilitat i de
Java. En el capítol anterior el lector ha pogut llegir quines propostes de
millora mencionen les pautes WAI per a cada tipus de discapacitat present al
document. Aquestes propostes de millora donaven a entendre com havia de canviar
la interfície d’usuari per a la discapacitat mencionada. Així doncs per a poder
mostrar l’interfície d’usuari com es proposa sorgeix la necessitat
d’adaptar-la.\\

Definirem com a adaptació, els ajusts que es produeixen en una interfície
d’usuari per a que resulti més fàcil per l’usuari discapacitat interaccionar amb
el sistema.\\

A més a més es pot dir que hi han dos tipus d’adaptacions:\\

\begin{itemize}
  \item Estàtiques\\En les quals l’aplicació es construeix des de zero pensant
  amb l’usuari discapacitat o be es redissenya una aplicació ja existent també
  enfocada a l’usuari. Els canvis que l’adaptació provoca són immutables al
  llarg de la vida de la interacció de l’usuari amb la interfície d’usuari. La
  necessitat d’aplicar un canvi nou passa per tenir que reprogramar l’aplicació.
  \item Dinàmiques\\Actualment força escasses encara, on la interfície d’usuari
  evoluciona al llarg de diversos cicles d’interacció. Es pot dir que el sistema
  ``aprèn'' de la interacció i va introduint canvis a la interfície d’usuari.
\end{itemize}


\section{Estat actual en l’adaptació d'interfícies d’usuari accessibles}
Les adaptacions estàtiques són pràcticament el 100\% de les adaptacions que
hi ha al mercat. Hi ha dos camins per aconseguir una aplicació adaptada.\\

El primer és que s’hagin tingut en compte les necessitats especials dels usuaris
abans i durant el desenvolupament de l’aplicació; aquest camí podria no
anomenar-se adaptació estàtica sinò creació d’una interfície adaptada.\\

L’altre camí possible és que una aplicació externa proporcioni l’adaptació de la
aplicació objectiu. Aquest cas és el més comú. Un exemple clar són els lectors
de text ó Text To Speech, que proporcionen una adaptació de veu a aplicacions
convencionals. D’altra banda, l’exemple d’una aplicació adaptada des de zero
podria ser la instal·lació de Jaws (un programa de Text To Speech), que és
usable per persones cegues sense necessitat de cap Text To Speech addicional.\\

Actualment, degut principalment als costos adicionals de desenvolupament i el
limitat nombre d’usuaris que requereixen d’aplicacions amb una interfície
completament accessible per a poder utilitzar-les, les adaptacions es solen
deixar en mans d’aplicacions externes.\\

D’altra banda, exceptuant tímides excepcions, la majoria d’aplicacions que
proporcionen  opcions d’adaptacions estàtiques mitjançant software extern són,
malauradament, aplicacions comercials.


\section{Adaptació dinàmica d’interfícies d’usuari accessibles}
Les adaptacions dinàmiques tenen força avantatges respecte de les estàtiques.\\

Un avantatge que tenen les adaptacions dinàmiques és que s’adeqüen molt bé a
algunes discapacitats, especialment les que resulten difícils de generalitzar.
També són millors quan hi ha una combinació de discapacitats per a les quals no
hi ha una adaptació estàtica concreta, o bé quan alguna de les discapacitats de
l’usuari és evolutiva (el seu grau varia amb el temps).\\

Les adaptacions dinàmiques, però, no es poden aplicar indiscriminadament. El fet
que la interfície d’usuari suporti canvis constants pot ser inapropiat per a
molts usuaris, i fins i tot contraindicat per a algunes discapacitats concretes,
com ara la falta de memòria, per exemple. Aplicar contínuament canvis a la
interfície pot trencar fàcilment l’aprenentatge de l’usuari sobre el sistema,
així com minvar els beneficis de la rutina i la experiència que l’usuari pogués
tindre amb el sistema. Així doncs la primera necesitat important de les
adaptacions dinàmiques és que no siguin intrusives, i que es permeti a l’usuari
decidir si vol provar certs canvis a la interfície o no. Això ens porta a la
segona necessitat, que és un cop provat un conjunt de canvis, poder tornar
enrere (si a l’usuari no li han resultat satisfactoris els canvis). És a dir, la
possibilitat de descartar l’últim conjunt de canvis que s’hagin aplicat a la
interfície.


\section{Costos dels dos tipus d’adaptacions}

Les adaptacions estàtiques, doncs, s’han de fer a mida per l’usuari. Fer-les des
de zero és molt costós. Però si estem parlant d’un usuari discapacitat en el
qual la seva discapacitat evoluciona ràpidament aquesta aplicació haurà de ser
reconstruïda i adaptada també molt ràpidament, fent-la per tant molt més costosa
ja que haurà de passar per tot el procès de desenvolupament de software i a més
entrem en termes de manteniment del software que seria molt costós si
l’aplicació no esta degudament documentada (cosa que no acostuma a passar). Tot
això per contrapartida garanteix que l’aplicació sigui la que l’usuari s’hi
trobi més bé, i per tant, la més accessible per ell.\\

\begin{figure}[H]
\centering
\includegraphics[width=0.5\textwidth]{imatges/mpcu.jpg}
\caption{Desenvolupament centrat en l'usuari}
\end{figure}


Pel que fa a les adaptacions dinàmiques el costos son molt reduïts. L’únic cost
que s’hi ha d’aplicar és el del manteniment del sistema que genera els canvis ja
sigui introduint dades necessàries al sistema per funcionar o be mantenint
la infraestructura del sistema ja que requereix de servidors.


\section{Punts principals del problema}
Actualment hi ha molt poca feina feta quant a adaptacions dinàmiques
d’interfícies d’usuari. Això és degut a que la complexitat de solucions que les
contempla és, com a mínim, un grau més elevada que la implementació
d’adaptacions estàtiques.\\

A més no es tracta només d’implementar quelcom que sigui capaç de modificar la
interfície d’usuari dinàmicament. Bona part del problema recau a nodrir aquesta
peça de software amb canvis coherents, que realment millorin l’experiència de
l’usuari de forma tangible. I qualsevol solució que pretengui oferir bons canvis
ha d’endinsar-se, inexorablement, cap a la intel·ligència artificial i una
recopilació de dades sobre com interacciona l’usuari amb el sistema com més
acurada millor.

El problema que proposa aquest document és proporcionar una adaptació dinàmica
amb els següents requisits:\\
\begin{itemize}
  \item L’usuari ha d’acabar obtenint una aplicació adaptada a les seves
  necessitats
  \item L’adaptació ha de ser ràpida
  \item L’adaptació es te que calcular de manera transparent a l’usuari
  \item L’aplicació de l’adaptació ha de ser el més còmode posible per l’usuari
  \item L’adaptació ha de millorar en cada proposta
  \item L’adaptació ha de poder-se desfer
  \item L’adaptació ha de tindre en compte tant el dispositiu com l’usuari
  \item L’adaptació ha de ser lo suficientment bona per a poder ignorar la
  majoria de problemes de hardware possibles

\end{itemize}
